자바스크립트 객체 더하기 연산의 타입 변환 규칙
Source
Evernote/IFTTT Feedly/자바스크립트 {} + {} 결과는.md
Summary
자바스크립트에서 {} + {}와 같은 객체 더하기 연산 시 발생하는 타입 변환 과정을 설명합니다. ECMAScript 5.1 규정에 따라 + 연산자는 피연산자를 기본형(Primitive)으로 변환한 후, 숫자 또는 문자열로 변환하여 결과를 도출합니다. 객체는 ToPrimitive 알고리즘을 통해 valueOf() 또는 toString() 메서드를 호출하여 기본형 값을 추출하며, 이 과정에서 반환된 값의 타입에 따라 최종 연산 결과가 달라집니다.
Key Points
자바스크립트 값은 기본형(undefined, null, boolean, number, string)과 객체(object, array, function)로 구분됩니다.
+ 연산자 실행 시 내부적으로 ToPrimitive, ToNumber, ToString 함수가 호출되어 타입 변환이 일어납니다.
객체의 기본형 변환(ToPrimitive)은 먼저 valueOf()를 호출하고, 결과가 기본형이 아니면 toString()을 호출합니다.
변환된 기본형 값이 숫자면 ToNumber(), 문자열이면 ToString()을 적용하여 최종 연산 결과를 계산합니다.
문서는 valueOf와 toString이 모두 객체를 반환하는 예외 케이스를 통해 TypeError 발생 및 변환 순서를 검증합니다.
자바스크립트 프로토타입(Prototype) 개념 정리
JavaScript this 키워드 동작 원리
자바스크립트 배열 메소드 5가지 (indexOf, filter, forEach, map, reduce)
자바스크립트 학습 방법론 (2017)
자바스크립트 동작 원리: 엔진, 런타임, 호출 스택
자바스크립트 메모리 누수 4가지 형태 (외부 링크)
일상 프로그래밍을 위한 기본 패턴 (LakTEK)
JavaScript 엔진의 동작 원리 (V8 기준)
자바스크립트 메모리 관리 및 4가지 흔한 메모리 누수 대처법
종성 분리 알고리즘
자바스크립트 아키텍처 v0.4
자바스크립트 기반 콘텐츠 숨김의 접근성 처리
자바스크립트 디자인 패턴 - 프록시(Proxy)
자바스크립트에서의 Continuation-passing style (CPS) 소개
이펙티브 자바스크립트 소개
NaiveChain: 200 줄 자바스크립트로 구현한 블록체인 기본 구조
텍스트 교체하기: 5가지 방법 (Swapping Out Text, Five Different Ways)
AJAX 기본 원리 및 XMLHttpRequest 구현
jQuery 이벤트 핸들링: .on() 사용 권장
Freemarker 템플릿 상속을 통한 레이아웃 관리
배경이 함께 슬라이드하는 웹 슬라이더 구현
Simple Ajax 예제
JavaScript Promises: 개념, 용어 및 표준화
Objective-C 함수 포인터와 코드 블럭
Git remote-tracking branch 개념 및 동작 원리
Distributed Web Worker 개발 중 Promise 및 이벤트 처리 이슈
Web Workers API 개요 및 기본 사용법
변수와 메소드 네이밍 15가지 모범 사례
비동기적 JavaScript
Design Patterns in JavaScript (tcorral)
requestAnimationFrame 사용법
JavaScript 의 현대적 활용 분야 (2019)
Web Workers: JavaScript 멀티스레딩
Distributed Electronic Rights in JavaScript
웹의 병목 현상: JavaScript
JavaScript 과잉 조직화 (Over-Organizing) 의 적절성
JavaScript 성능 향상을 위한 Thread-level Speculation (TLS)
JavaScript 기반 분산 컴퓨팅 고려사항
List.js: HTML 리스트의 검색, 정렬, 필터링을 위한 경량 JavaScript 라이브러리
ML 기반 번들링: JavaScript 툴링의 미래
웹의 불안전한 JavaScript 사용 관행에 대한 측정 연구
북마클릿(Bookmarklet) 정의
JSWhiz: JavaScript 메모리 누수 정적 분석 도구
C++ Coroutine 의 개념 및 구현 특성
JavaScript 패키지 매니저의 간략한 역사 (npm, Yarn, pnpm)
CSS :scope 가상 클래스의 용도 및 동작 방식
풀스택 JavaScript 프레임워크 학습 조언 (Quora)
2017 년 JavaScript 테스트 개요 (Powtoon Engineering)
HTTP Archive: jQuery 호스팅 및 버전 분산 분석 (2013)
웹 기반 연산 오프로딩 및 상태 시리얼라이제이션 연구 동향
Prototype용 선택 상자 플러그인
Programming With Nothing (Ruby Proc-only Computing)
더글라스 크록포드의 작업 철학 및 JavaScript 관점
HTML에서 Javascript와 CSS 기반으로 애니메이션을 구현하는 방법
CSRF)
대규모 JavaScript 애플리케이션 설계 및 엔지니어 성장